import React,{useState,useEffect,useContext} from 'react'

const ThemeContext = React.createContext({
    name:"light"
});
const ref = React.createRef();
class App extends React.Component {
    render() {
        // 使用一个 Provider 来将当前的 theme 传递给以下的组件树。
        // 无论多深，任何组件都能读取这个值。
        // 在这个例子中，我们将 “dark” 作为当前的值传递下去。
        return (
            <ThemeContext.Provider value={{
                name:"dark2344"
            }}>
                <Toolbar ref={ref}/>
            </ThemeContext.Provider>
        );
    }
}

// 中间的组件再也不必指明往下传递 theme 了。
function Toolbar(props){
    const x = useContext(ThemeContext);
    console.log("=======x",x)
    return (
        <div>
            {x.name}
        </div>
    );
}

class ThemedButton extends React.Component {
    // 指定 contextType 读取当前的 theme context。
    // React 会往上找到最近的 theme Provider，然后使用它的值。
    // 在这个例子中，当前的 theme 值为 “dark”。
    static contextType = ThemeContext;
    render() {
        console.log(this.context);
        return (
            <div>xxx</div>
        );
    }
}
export default function Home(){
    const [count,setCount] = useState(0);
    //dom 更新的时候执行
    useEffect(() => {
        document.title = `You clicked ${count} times`;
        // document.title = "xxx";
        console.log("x")
    })
    useEffect(() => {
        console.log("x2")
    })
    return (
        <div>
            <p>count={count}</p>

            <button onClick={() => {
                setCount(count + 1)
                // document.title = "avdfvadf";
            }}>click</button>
            <App/>
        </div>
    )
}
